# views.py: 路由 + 视图函数
from flask import Blueprint
from .models import *

# 蓝图
blue = Blueprint('user',__name__)

@blue.route('/')
def index():
    return 'index'

### 参数类型
# - string: 接收任何没有斜杠('/')的文件(默认)
# - int: 接收整型
# - float: 接收浮点型
# - path: 接收路径，可接收斜线('/')
# - uuid: 只接收 uuid 字符串，唯一码，一种生成规则
# - any: 可以同时指定多种路径，进行限定

# string: 重点
@blue.route('/string/<string:name>')
def get_string(name):
    print(type(name))
    return name

# int
@blue.route('/int/<int:id>')
def get_int(id):
    print(type(id))
    # return id 报错，返回值不能为 int
    return str(id)

# float
@blue.route('/float/<float:more>')
def get_float(more):
    print(type(more))
    # return more 报错，返回值不能为 float
    return str(more)


# path: 字符串 支持 / 的字符串
@blue.route('/path/<path:name>')
def get_path(name):
    print(type(name))
    return name


# uuid: dcab8b9e-b933-42d6-a679-95c71286f451
@blue.route('/uuid/<uuid:uid>')
def get_uuid(uid):
    print(type(uid))
    return str(uid)


# 获取 uuid
@blue.route('/getuuid')
def getuuid():
    import uuid
    return str(uuid.uuid4())

# any: 从列出的项目选择一个, 可以限制输入
@blue.route('/any/<any(apple,banana,orange):fruit>')
def get_any(fruit):
    print(type(fruit))
    return str(fruit)


# methods: 请求方式
#   默认不支持 POST
#   如果需要同时支持 GET 和 POST，就设置 methods
@blue.route('/methods', methods=['GET','POST'])
def get_methods():
    return 'methods'